package com.xbongbong.paas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import com.xbongbong.pro.domain.entity.HomePageManageEntity;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageCopyDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageDelDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageEnableDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageGetDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageListDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageManageSaveDTO;
import com.xbongbong.pro.homePageManage.pojo.dto.HomePageVisibleDTO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageCopyVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageDelVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageEnableVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageGetVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageListVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageManageSaveVO;
import com.xbongbong.pro.homePageManage.pojo.vo.HomePageVisibleVO;
import com.xbongbong.pro.smartsettings.pojo.vo.SmartSettingsDelVO;

/**
 * @ClassName HomePageManageService
 * @Description 首页管理
 * @Author mengna.Deng
 * @Date 2021/11/1 13:50
 * @Version 1.0
 */
public interface HomePageManageService {
    /**
     * 首页管理列表
     * @param listDTO
     * @return
     * @throws XbbException
     */
    HomePageManageListVO list(HomePageManageListDTO listDTO) throws XbbException;

    /**
     * 获取设置
     * @param getDTO
     * @return
     * @throws XbbException
     */
    HomePageManageGetVO get(HomePageManageGetDTO getDTO) throws XbbException;
    /**
     * 保存设置
     * @param saveDTO
     * @return
     * @throws XbbException
     */
    HomePageManageSaveVO save(HomePageManageSaveDTO saveDTO) throws XbbException;
    /**
     * 复制设置
     * @param saveDTO
     * @return
     * @throws XbbException
     */
    HomePageManageCopyVO copy(HomePageManageCopyDTO saveDTO) throws XbbException;
    /**
     * 启用/关闭首页管理
     * @param enableDTO
     * @return
     * @throws XbbException
     */
    HomePageManageEnableVO enable(HomePageManageEnableDTO enableDTO) throws XbbException;
    /**
     * 删除首页管理
     * @param smartSettingsDelDTO
     * @return
     * @throws XbbException
     */
    HomePageManageDelVO delete(HomePageManageDelDTO smartSettingsDelDTO) throws XbbException;

    /**
     * 判断用户是否可见
     * @param homePageVisibleDTO
     * @return
     */
    HomePageVisibleVO homePageListIsVisible(HomePageVisibleDTO homePageVisibleDTO);

    /**
     * 判断用户是否有被分配首页
     */
    Boolean judgeDistributeByUserId(BaseDTO baseDTO);
}
